diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
--- a/BLAS/SRC/CMakeLists.txt
+++ b/BLAS/SRC/CMakeLists.txt
@@ -137,13 +137,9 @@
   
   
 add_library(blas ${ALLOBJ})
-#if(UNIX)
-#  target_link_libraries(blas m)
-#endif()
 set_target_properties(
   blas PROPERTIES
   VERSION ${LAPACK_VERSION}
   SOVERSION ${LAPACK_MAJOR_VERSION}
   )
-target_link_libraries(blas)
 lapack_install_library(blas)
diff --git a/BLAS/blas.pc.in b/BLAS/blas.pc.in
--- a/BLAS/blas.pc.in
+++ b/BLAS/blas.pc.in
@@ -6,4 +6,3 @@
 Version: @LAPACK_VERSION@
 URL: http://www.netlib.org/blas/
 Libs: -L${libdir} -lblas
-Libs.private: -lm
diff --git a/CBLAS/cblas.pc.in b/CBLAS/cblas.pc.in
--- a/CBLAS/cblas.pc.in
+++ b/CBLAS/cblas.pc.in
@@ -6,4 +6,4 @@
 Version: @LAPACK_VERSION@
 URL: http://www.netlib.org/blas/#_cblas
 Libs: -L${libdir} -lcblas
-Requires: blas
+Requires.private: blas
diff --git a/CBLAS/examples/CMakeLists.txt b/CBLAS/examples/CMakeLists.txt
--- a/CBLAS/examples/CMakeLists.txt
+++ b/CBLAS/examples/CMakeLists.txt
@@ -1,8 +1,8 @@
 add_executable(xexample1_CBLAS cblas_example1.c )
 add_executable(xexample2_CBLAS cblas_example2.c )
 
-target_link_libraries(xexample1_CBLAS cblas ${BLAS_LIBRARIES})
-target_link_libraries(xexample2_CBLAS cblas ${BLAS_LIBRARIES})
+target_link_libraries(xexample1_CBLAS cblas)
+target_link_libraries(xexample2_CBLAS cblas)
 
 add_test(example1_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample1_CBLAS)
 add_test(example2_CBLAS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample2_CBLAS)
diff --git a/CBLAS/src/CMakeLists.txt b/CBLAS/src/CMakeLists.txt
--- a/CBLAS/src/CMakeLists.txt
+++ b/CBLAS/src/CMakeLists.txt
@@ -164,5 +164,9 @@
 endif(CBLAS_COMPLEX16)
 
 add_library(cblas ${ALLOBJ})
-target_link_libraries(cblas ${BLAS_LIBRARIES} )
+target_link_libraries(cblas PRIVATE ${BLAS_LIBRARIES})
+set_target_properties(
+  cblas PROPERTIES
+  LINKER_LANGUAGE C
+  )
 lapack_install_library(cblas)
diff --git a/CBLAS/testing/CMakeLists.txt b/CBLAS/testing/CMakeLists.txt
--- a/CBLAS/testing/CMakeLists.txt
+++ b/CBLAS/testing/CMakeLists.txt
@@ -55,9 +55,9 @@
   add_executable(xscblat2 c_sblat2.f ${STESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
   add_executable(xscblat3 c_sblat3.f ${STESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
   
-  target_link_libraries(xscblat1 cblas ${BLAS_LIBRARIES})
-  target_link_libraries(xscblat2 cblas ${BLAS_LIBRARIES})
-  target_link_libraries(xscblat3 cblas ${BLAS_LIBRARIES})
+  target_link_libraries(xscblat1 cblas)
+  target_link_libraries(xscblat2 cblas)
+  target_link_libraries(xscblat3 cblas)
  
   add_cblas_test(stest1.out ""   xscblat1)
   add_cblas_test(stest2.out sin2 xscblat2)
@@ -71,9 +71,9 @@
   add_executable(xdcblat2 c_dblat2.f ${DTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
   add_executable(xdcblat3 c_dblat3.f ${DTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
   
-  target_link_libraries(xdcblat1 cblas ${BLAS_LIBRARIES})
-  target_link_libraries(xdcblat2 cblas ${BLAS_LIBRARIES})
-  target_link_libraries(xdcblat3 cblas ${BLAS_LIBRARIES})
+  target_link_libraries(xdcblat1 cblas)
+  target_link_libraries(xdcblat2 cblas)
+  target_link_libraries(xdcblat3 cblas)
  
   add_cblas_test(dtest1.out ""   xdcblat1)
   add_cblas_test(dtest2.out din2 xdcblat2)
@@ -87,9 +87,9 @@
   add_executable(xccblat2 c_cblat2.f ${CTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
   add_executable(xccblat3 c_cblat3.f ${CTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
   
-  target_link_libraries(xccblat1 cblas ${BLAS_LIBRARIES})
-  target_link_libraries(xccblat2 cblas ${BLAS_LIBRARIES})
-  target_link_libraries(xccblat3 cblas ${BLAS_LIBRARIES})
+  target_link_libraries(xccblat1 cblas)
+  target_link_libraries(xccblat2 cblas)
+  target_link_libraries(xccblat3 cblas)
  
   add_cblas_test(ctest1.out ""   xccblat1)
   add_cblas_test(ctest2.out cin2 xccblat2)
@@ -103,9 +103,9 @@
   add_executable(xzcblat2 c_zblat2.f ${ZTESTL2O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
   add_executable(xzcblat3 c_zblat3.f ${ZTESTL3O} ${LAPACK_BINARY_DIR}/include/cblas_test.h)
   
-  target_link_libraries(xzcblat1 cblas ${BLAS_LIBRARIES})
-  target_link_libraries(xzcblat2 cblas ${BLAS_LIBRARIES})
-  target_link_libraries(xzcblat3 cblas ${BLAS_LIBRARIES})
+  target_link_libraries(xzcblat1 cblas)
+  target_link_libraries(xzcblat2 cblas)
+  target_link_libraries(xzcblat3 cblas)
  
   add_cblas_test(ztest1.out ""   xzcblat1)
   add_cblas_test(ztest2.out zin2 xzcblat2)
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
 cmake_minimum_required(VERSION 2.8.10)
-project(LAPACK Fortran)
+project(LAPACK C Fortran)
 
 set(LAPACK_MAJOR_VERSION 3)
 set(LAPACK_MINOR_VERSION 6)
diff --git a/LAPACKE/CMakeLists.txt b/LAPACKE/CMakeLists.txt
--- a/LAPACKE/CMakeLists.txt
+++ b/LAPACKE/CMakeLists.txt
@@ -46,17 +46,21 @@
 
 if (USE_XBLAS)
    add_library(lapacke ${SRC_OBJ} ${SRCX_OBJ} ${UTILS_OBJ})
-   target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
+   target_link_libraries(lapacke PRIVATE ${LAPACK_LIBRARIES})
 else (USE_XBLAS)
   if (LAPACKE_WITH_TMG)
    add_library(lapacke ${SRC_OBJ} ${MATGEN_OBJ} ${UTILS_OBJ})
-   target_link_libraries(lapacke tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+   target_link_libraries(lapacke PRIVATE tmglib ${LAPACK_LIBRARIES})
   else (LAPACKE_WITH_TMG)
    add_library(lapacke ${SRC_OBJ} ${UTILS_OBJ})
-   target_link_libraries(lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+   target_link_libraries(lapacke PRIVATE ${LAPACK_LIBRARIES})
   endif(LAPACKE_WITH_TMG)
 endif(USE_XBLAS)
 
+set_target_properties(
+  lapacke PROPERTIES
+  LINKER_LANGUAGE C
+  )
 lapack_install_library(lapacke)
 INSTALL( FILES ${LAPACKE_INCLUDE} DESTINATION include )
 
diff --git a/LAPACKE/example/CMakeLists.txt b/LAPACKE/example/CMakeLists.txt
--- a/LAPACKE/example/CMakeLists.txt
+++ b/LAPACKE/example/CMakeLists.txt
@@ -3,10 +3,10 @@
 add_executable(xexample_DGELS_rowmajor example_DGELS_rowmajor.c lapacke_example_aux.c lapacke_example_aux.h)
 add_executable(xexample_DGELS_colmajor example_DGELS_colmajor.c lapacke_example_aux.c lapacke_example_aux.h)
 
-target_link_libraries(xexample_DGESV_rowmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGESV_colmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGELS_rowmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
-target_link_libraries(xexample_DGELS_colmajor lapacke ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+target_link_libraries(xexample_DGESV_rowmajor lapacke)
+target_link_libraries(xexample_DGESV_colmajor lapacke)
+target_link_libraries(xexample_DGELS_rowmajor lapacke)
+target_link_libraries(xexample_DGELS_colmajor lapacke)
 
 add_test(example_DGESV_rowmajor ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample_DGESV_rowmajor)
 add_test(example_DGESV_colmajor ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/xexample_DGESV_colmajor)
diff --git a/LAPACKE/lapacke.pc.in b/LAPACKE/lapacke.pc.in
--- a/LAPACKE/lapacke.pc.in
+++ b/LAPACKE/lapacke.pc.in
@@ -6,4 +6,4 @@
 Version: @LAPACK_VERSION@
 URL: http://www.netlib.org/lapack/#_standard_c_language_apis_for_lapack
 Libs: -L${libdir} -llapacke
-Requires: lapack blas
+Requires.private: lapack
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
--- a/SRC/CMakeLists.txt
+++ b/SRC/CMakeLists.txt
@@ -455,12 +455,10 @@
 list(REMOVE_DUPLICATES ALLOBJ)
 
 add_library(lapack ${ALLOBJ} ${ALLXOBJ})
-target_link_libraries(lapack ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
-
+target_link_libraries(lapack PRIVATE ${BLAS_LIBRARIES} ${XBLAS_LIBRARY})
 set_target_properties(
   lapack PROPERTIES
   VERSION ${LAPACK_VERSION}
   SOVERSION ${LAPACK_MAJOR_VERSION}
   )
-
 lapack_install_library(lapack)
diff --git a/TESTING/EIG/CMakeLists.txt b/TESTING/EIG/CMakeLists.txt
--- a/TESTING/EIG/CMakeLists.txt
+++ b/TESTING/EIG/CMakeLists.txt
@@ -119,7 +119,7 @@
 
 macro(add_eig_executable name )
   add_executable(${name} ${ARGN})
-  target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES})
+  target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
 endmacro(add_eig_executable)
 
 if (BUILD_SINGLE)
diff --git a/TESTING/LIN/CMakeLists.txt b/TESTING/LIN/CMakeLists.txt
--- a/TESTING/LIN/CMakeLists.txt
+++ b/TESTING/LIN/CMakeLists.txt
@@ -193,7 +193,7 @@
 
 macro(add_lin_executable name )
   add_executable(${name} ${ARGN})
-  target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES})
+  target_link_libraries(${name} tmglib ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
 endmacro(add_lin_executable)
 
 IF(BUILD_SINGLE)
diff --git a/lapack.pc.in b/lapack.pc.in
--- a/lapack.pc.in
+++ b/lapack.pc.in
@@ -6,4 +6,4 @@
 Version: @LAPACK_VERSION@
 URL: http://www.netlib.org/lapack/
 Libs: -L${libdir} -llapack
-Requires: blas
+Requires.private: blas
